//排序子序列
#include <iostream>
#include <vector>
using namespace std;
int main()
{
    int n;
    cin>>n;
    vector<int>nums(n,0);
    for(int i=0;i<nums.size();i++)
    {
        cin>>nums[i];
    }
    int res=0;
    for(int i=1;i<nums.size();i++)
    {
        if(nums[i]>nums[i-1])
        {
            //非递减
            while(i<nums.size()&&nums[i]>=nums[i-1])
            {
                i++;
            }
            //要么相悖了 要么走到头了 都得++
            res++;
            if(i+1==nums.size())
            {
                res++;
            }
        }
        else if(nums[i]==nums[i-1])
        {
            //可以走非递增也可以走非递减 不好判断
            continue;
        }
        else
        {
            //非递减
            while(i<nums.size()&&nums[i]<=nums[i-1])
            {
                i++;
            }
            res++;
            if(i+1==nums.size())
            {
                res++;
            }
        }
    }
    cout<<res<<endl;
    return 0;
}

//倒置字符串
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
    string s1;
    getline(cin,s1);
    reverse(s1.begin(),s1.end());
    auto start =s1.begin();
    while(start!=s1.end())
    {
        auto end=start;
        while(end!=s1.end()&& *end!=' ')
        {
            end++;
        }
        
        if(*end==' ')
        {  
            reverse(start,end);
            start=end+1;
        }
        else
        {
            reverse(start,end);
            start=end;
        }
    }
    cout<<s1<<endl;
    return 0;
}